import java.util.Scanner;

/**
 * 输入一行字符分别统计出其英文字母，数字，空格和其他字符的个数。
 * 将输入字符存入字符型数组，在循环体中与ASCII码对照计数，循环结束后输出各个计数变量。
 */
public class CountNumOfString {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串：");
        int numcount=0,lettercount=0,spcount=0,chinesecount=0,othercount=0;
        String str = sc.nextLine();
        char[] arr = str.toCharArray();//字符串转化为数组
        for (int i = 0; i < arr.length; i++) {
            //判断是否为汉字
            if (arr[i]>='\u4e00'&&arr[i]<='\u9fa5'){
                chinesecount++;
            }
            //判断是否为数字
            if (arr[i]>='0'&&arr[i]<='9'){
                numcount++;
                //判断是否为字母
            }else if ((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z')){
                lettercount++;
                //判断是否为空格
            }else if (arr[i] == ' '){
                spcount++;
            }else {
                othercount++;
            }
        }
        System.out.println("汉字的个数为：" + chinesecount);
        System.out.println("数字的个数为：" + numcount);
        System.out.println("字母的个数为：" + lettercount);
        System.out.println("空格的个数为：" + spcount);
        System.out.println("其他字符的个数为：" + othercount);
    }
}
